namespace abilities.parameters
{
    /**参数的值，基本值、当前值构成*/
    public class ParameterValue
    {
        /**	参数的基本值。
         * 基本值不能不存在。不能少于零。基本值是两者的最大值。当前值不能超过基本值。
         * 例如，HP 基础200，当前值190。
         */
        int _base;

        int _current;

        public static readonly ParameterValue ZERO = new ParameterValue(0, 0);

        public ParameterValue(int basev)
        {
            _base = basev;
            _current = 0;
        }

        public ParameterValue(int basev, int current)
        {
            _base = basev;
            _current = current;
        }

        public ParameterValue() 
        {
            _base = 0;
            _current = 0;
        }

        public ParameterValue(ParameterValue  parameterValue){
            _base = parameterValue._base;
            _current = parameterValue._current;
        }


        public int Base
        {
            get{
                return _base;
            }
            set
            {
                _base = value;
                if (_base < 0)
                    _base = 0;
                if (_current > _base)
                    _current = _base;
            }
        }

        public int Current
        {
            get{
                return _current;
            }
            set
            {
                _current = value;
                if(_current <0 || _current > _base)
                    _current = _base;
            }
        }
    }
}